home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1980-01-01 | 5.8 KB | 394 lines |
- 10 CLS:KEY OFF
- 20 PRINT CHR$(26)
- 30 PRINT"WHAT IS YOUR LUCKY NUMBER (1 TO 25000)"
- 40 INPUT LN
- 50 IF LN<1 OR LN>25000 OR LN<>INT(LN) THEN PRINT"FOLLOW INSTRUCTIONS !":GOTO101
- 60 LN=LN MOD 97
- 70 FOR X=1 TO LN:NL=RND(1):NL=RND(X):NEXT
- 80 PRINT : PRINT : PRINT
- 90 DIM D(208),H(16),O(16),P(16,11),Q(11),S(16),X(16)
- 100 PRINT
- 110 PRINT" ***** BLACKJACK *****"
- 120 PRINT
- 130 PRINT"INSTRUCTIONS (Y=YES; N=NO)"
- 140 INPUT M$
- 150 IF M$="Y" GOTO 170
- 160 IF M$<>"N" GOTO 130 ELSE GOTO 180
- 170 GOSUB 3730
- 180 PRINT CHR$(26):R=16
- 190 PRINT " HOW MANY DECKS? (1-4)";
- 200 INPUT N
- 210 IF N>0 GOTO 240
- 220 PRINT" 1 TO 4 DECKS ONLY!! REENTER ";
- 230 GOTO 200
- 240 IF N>4 GOTO 220
- 250 E=N*52
- 260 GOSUB 1840
- 270 B=1
- 280 GOSUB 1910
- 290 A=1
- 300 PRINT
- 310 G=1
- 320 PRINT
- 330 PRINT
- 340 PRINT
- 350 PRINT
- 360 INPUT"YOUR BET";U
- 370 IF U=0 GOTO 3690:IF U<0 GOSUB 1910
- 380 PRINT CHR$(26)
- 390 PRINT"YOUR BET IS $";U;" YOUR STANDING IS $";V
- 400 IF U>0 GOTO 450
- 410 IF U=0 GOTO 3690
- 420 B=1
- 430 GOSUB 1910
- 440 GOTO 360
- 450 IF U<=500 GOTO 480
- 460 PRINT" HOUSE LIMIT IS $500!! REENTER"
- 470 GOTO 360
- 480 GOSUB 2010
- 490 H(1)=U
- 500 N=Q(2)
- 510 PRINT"MY UP CARD";
- 520 GOSUB 2430
- 530 PRINT
- 540 N=P(R,1)
- 550 PRINT TAB(7)"YOUR 1ST CARD"
- 560 GOSUB 2430
- 570 N=P(R,2)
- 580 PRINT TAB(7)"YOUR 2ND CARD"
- 590 GOSUB 2430
- 600 GOSUB 2760
- 610 IF M<>11 GOTO 630
- 620 GOSUB 3580
- 630 IF W<>21 GOTO 720
- 640 PRINT"I HAVE BLACKJACK, ";
- 650 IF X(1)<>21 GOTO 690
- 660 PRINT"SO DO YOU, WE PUSH";
- 670 GOSUB 3490
- 680 GOTO 300
- 690 PRINT"YOU LOSE ";
- 700 V=V-U
- 710 GOTO 670
- 720 IF X(1)<>21 GOTO 760
- 730 PRINT"YOU HAVE BLACKJACK, YOU WIN!"
- 740 V=V+3*U/2
- 750 GOTO 670
- 760 PRINT"PLAY ";
- 770 IF R=1 GOTO 790
- 780 PRINT"FOR HAND ";G;" ";
- 790 INPUT F
- 800 IF F>-1 GOTO 830
- 810 PRINT"ONLY 0-3 ARE VALID! REENTER";
- 820 GOTO 790
- 830 IF F>3 GOTO 810
- 840 IF F<>1 GOTO 1150
- 850 IF A<=E GOTO 870
- 860 GOSUB 2860
- 870 M=S(G)
- 880 M=M+1
- 890 S(G)=M
- 900 N=D(A)
- 910 P(G,M)=N
- 920 PRINT TAB(7)"YOUR CARD IS ";
- 930 GOSUB 2430
- 940 GOSUB 2340
- 950 A=A+1
- 960 IF N<>11 GOTO 980
- 970 O(G)=O(G)+1
- 980 X(G)=X(G)+N
- 990 IF X(G)<22 GOTO 760
- 1000 IF O(G)=0 GOTO 1040
- 1010 O(G)=O(G)-1
- 1020 X(G)=X(G)-10
- 1030 GOTO 990
- 1040 PRINT:PRINT"YOU BUSTED WITH ";X(G)
- 1050 X(G)=0
- 1060 Y=Y-1
- 1070 IF G<R GOTO 1100
- 1080 GOSUB 2990
- 1090 GOTO 300
- 1100 G=G+1
- 1110 N=P(G,1)
- 1120 PRINT"YOUR FIRST CARD FOR HAND ";G;" WAS ";
- 1130 GOSUB 2430
- 1140 GOTO 760
- 1150 IF F<>0 GOTO 1210
- 1160 IF X(G)<22 GOTO 1070
- 1170 IF O(G)=0 GOTO 1040
- 1180 X(G)=X(G)-10
- 1190 O(G)=O(G)-1
- 1200 G=G+1
- 1210 IF F<>2 GOTO 1420
- 1220 IF S(G)=2 GOTO 1250
- 1230 PRINT"DOUBLE ON FIRST TWO CARDS ONLY!!"
- 1240 GOTO 760
- 1250 IF A<=E GOTO 1270
- 1260 GOSUB 2860
- 1270 H(G)=2*U
- 1280 N=D(A)
- 1290 P(G,3)=N
- 1300 A=A+1
- 1310 PRINTTAB(20)"YOU DRAW THE ";
- 1320 GOSUB 2430
- 1330 GOSUB 2340
- 1340 IF N<>11 GOTO 1360
- 1350 O(G)=O(G)+1
- 1360 X(G)=X(G)+N
- 1370 IF X(G)<22 GOTO 1070
- 1380 IF O(G)=0 GOTO 1040
- 1390 O(G)=O(G)-1
- 1400 X(G)=X(G)-10
- 1410 GOTO 1370
- 1420 N=P(G,1)
- 1430 Y=Y+1
- 1440 GOSUB 2340
- 1450 M=N
- 1460 N=P(G,2)
- 1470 GOSUB 2340
- 1480 IF M=N GOTO 1510
- 1490 PRINT"YOU MAY ONLY SPLIT PAIRS!!";
- 1500 GOTO 760
- 1510 R=R+1
- 1520 Y=Y+1
- 1530 P(R,1)=P(G,2)
- 1540 S(G)=1
- 1550 S(R)=1
- 1560 X(G)=X(G)/2
- 1570 X(R)=X(G)
- 1580 H(R)=U
- 1590 IF N<>11 GOTO 760
- 1600 IF A<=E GOTO 1620
- 1610 GOSUB 2860
- 1620 N=D(A)
- 1630 P(G,2)=N
- 1640 PRINT"1ST ACE GETS:";
- 1650 GOSUB 2430
- 1660 GOSUB 2340
- 1670 IF N<>11 GOTO 1690
- 1680 N=1
- 1690 X(G)=X(G)+N
- 1700 A=A+1
- 1710 IF A<=E GOTO 1740
- 1720 GOSUB 2860
- 1730 S=0
- 1740 N=D(A)
- 1750 P(R,2)=N
- 1760 PRINT"2ND ACE GETS:";
- 1770 GOSUB 2430
- 1780 GOSUB 2340
- 1790 IF N<>11 GOTO 1810
- 1800 N=1
- 1810 X(R)=X(R)+N
- 1820 A=A+1
- 1830 GOTO 1080
- 1840 FOR I=1 TO N
- 1850 J=(I-1)*52
- 1860 FOR K=1 TO 52
- 1870 D(K+J)=K
- 1880 NEXT K
- 1890 NEXT I
- 1900 RETURN
- 1910 PRINT"I'M SHUFFLING THE CARDS ",
- 1920 FOR I=B TO E
- 1930 C=RND(5)*E
- 1940 IF C<B GOTO 1930
- 1950 L=D(I)
- 1960 D(I)=D(C)
- 1970 D(C)=L
- 1980 NEXT I
- 1990 A=B
- 2000 RETURN
- 2010 FOR I=1 TO 11
- 2020 Q(I)=0
- 2030 FOR J=1 TO R
- 2040 P(J,I)=0
- 2050 NEXT J
- 2060 NEXT I
- 2070 R=1
- 2080 Y=1
- 2090 IF A+4<=E GOTO 2120
- 2100 B=1
- 2110 GOSUB 1910
- 2120 PRINT"DEALING"
- 2130 PRINT
- 2140 P(R,1)=D(A)
- 2150 Q(1)=D(A+1)
- 2160 P(R,2)=D(A+2)
- 2170 Q(2)=D(A+3)
- 2180 A=A+4
- 2190 T=2
- 2200 S(1)=2
- 2210 GOSUB 2240
- 2220 M=N
- 2230 RETURN
- 2240 Z=0
- 2250 W=0
- 2260 FOR I=1 TO 2
- 2270 N=Q(I)
- 2280 GOSUB 2340
- 2290 IF N<>11 GOTO 2310
- 2300 Z=Z+1
- 2310 W=W+N
- 2320 NEXT I
- 2330 RETURN
- 2340 IF N<14 GOTO 2370
- 2350 N=N-13
- 2360 GOTO 2340
- 2370 IF N<>1 GOTO 2400
- 2380 N=11
- 2390 RETURN
- 2400 IF N<11 GOTO 2420
- 2410 LET N=10
- 2420 RETURN
- 2430 I=0
- 2440 IF N<14 GOTO 2480
- 2450 N=N-13
- 2460 I=I+1
- 2470 GOTO 2440
- 2480 IF N<>1 GOTO 2510
- 2490 PRINT TAB(17);"ACE";
- 2500 GOTO 2640
- 2510 IF N>9 GOTO 2540
- 2520 PRINT TAB(18);N;
- 2530 GOTO 2640
- 2540 IF N>10 GOTO 2570
- 2550 PRINT TAB(17);N;
- 2560 GOTO 2640
- 2570 IF N>11 GOTO 2600
- 2580 PRINT TAB(16);"JACK";
- 2590 GOTO 2640
- 2600 IF N>12 GOTO 2630
- 2610 PRINT TAB(16);"QUEEN";
- 2620 GOTO 2640
- 2630 PRINT TAB(16);"KING";
- 2640 PRINT" OF ";
- 2650 IF I<>0 GOTO 2680
- 2660 PRINT"SPADES"
- 2670 RETURN
- 2680 IF I<>1 GOTO 2710
- 2690 PRINT"HEARTS"
- 2700 RETURN
- 2710 IF I<>2 GOTO 2740
- 2720 PRINT"DIAMONDS"
- 2730 RETURN
- 2740 PRINT"CLUBS"
- 2750 RETURN
- 2760 O(G)=0
- 2770 X(G)=0
- 2780 FOR I=1 TO 2
- 2790 N=P(G,I)
- 2800 GOSUB 2340
- 2810 X(G)=X(G)+N
- 2820 IF N<>11 GOTO 2840
- 2830 O(G)=O(G)+1
- 2840 NEXT I
- 2850 RETURN
- 2860 K=T
- 2870 FOR I=1 TO R
- 2880 K=K+S(I)
- 2890 NEXT I
- 2900 FOR I=1 TO K
- 2910 A=A-1
- 2920 J=D(I)
- 2930 D(I)=D(A)
- 2940 D(A)=J
- 2950 NEXT I
- 2960 B=K+1
- 2970 GOSUB 1910
- 2980 RETURN
- 2990 N=Q(1)
- 3000 PRINT"MY HOLE CARD"
- 3010 GOSUB 2430
- 3020 IF Y=0 GOTO 3280
- 3030 IF W<17 GOTO 3080
- 3040 IF W>17 GOTO 3200
- 3050 IF Z=0 GOTO 3260
- 3060 W=W-10
- 3070 Z=Z-1
- 3080 IF A<=E GOTO 3100
- 3090 GOSUB 2860
- 3100 N=D(A)
- 3110 A=A+1
- 3120 Q(T)=N
- 3130 PRINT"I DRAW THE";
- 3140 GOSUB 2430
- 3150 GOSUB 2340
- 3160 IF N<>11 GOTO 3180
- 3170 Z=Z+1
- 3180 W=W+N
- 3190 GOTO 3030
- 3200 IF W<22 GOTO 3260
- 3210 IF Z=0 GOTO 3250
- 3220 Z=Z-1
- 3230 W=W-10
- 3240 GOTO 3030
- 3250 PRINT"I BUSTED ";
- 3260 PRINT"MY TOTAL IS ";W
- 3270 PRINT TAB(7)"YOUR TOTAL IS ";X(G)
- 3280 FOR I=1 TO R
- 3290 PRINT"YOU ";
- 3300 IF X(I)<>0 GOTO 3340
- 3310 PRINT"LOST ";
- 3320 V=V-H(I)
- 3330 GOTO 3430
- 3340 IF W<22 GOTO 3380
- 3350 PRINT"WON ";
- 3360 V=V+H(I)
- 3370 GOTO 3430
- 3380 IF W<>X(I) GOTO 3410
- 3390 PRINT"PUSHED ON ";
- 3400 GOTO 3430
- 3410 IF W<X(I) GOTO 3350
- 3420 GOTO 3310
- 3430 IF R<>1 GOTO 3460
- 3440 PRINT"THE HAND"
- 3450 GOTO 3470
- 3460 PRINT"HAND ";I
- 3470 NEXT I
- 3480 PRINT
- 3490 PRINT"YOU ARE ";
- 3500 IF V<>0 GOTO 3530
- 3510 PRINT"EVEN"
- 3520 RETURN
- 3530 IF V>0 GOTO 3560
- 3540 PRINT"LOSING $";V
- 3550 RETURN
- 3560 PRINT"WINNING $";V
- 3570 RETURN
- 3580 PRINT"INSURANCE ? (Y=YES; N=NO)":INPUT M$
- 3590 IF M$="Y" GOTO 3610
- 3600 RETURN
- 3610 PRINT"YOUR INSURANCE BET ";
- 3620 IF W<>21 GOTO 3660
- 3630 PRINT"WINS"
- 3640 V=V+U
- 3650 RETURN
- 3660 PRINT"LOSES"
- 3670 V=V-U/2
- 3680 RETURN
- 3690 PRINT"HERE'S YOUR FINAL STANDING!"
- 3700 GOSUB 3490
- 3710 GOTO 3930
- 3720 PRINT
- 3730 PRINT"THE DEALER STANDS ON 17 OR MORE,"
- 3740 PRINT"BUT WILL HIT A SOFT 17."
- 3750 PRINT"YOU MAY SPLIT ANY PAIR."
- 3760 PRINT"YOU MAY DOUBLE DOWN ON FIRST TWO CARDS,"
- 3770 PRINT"AND GET ONLY ONE MORE CARD."
- 3780 PRINT
- 3790 PRINT"HOUSE LIMIT IS $500 ON EACH HAND......."
- 3800 PRINT
- 3810 PRINT"USE THESE CODES TO PLAY:"
- 3820 PRINT" 0-STAND"
- 3830 PRINT" 1-HIT"
- 3840 PRINT" 2-DOUBLE DOWN"
- 3850 PRINT" 3-SPLIT A PAIR"
- 3860 PRINT
- 3870 PRINT"A ZERO BET ENDS THE GAME."
- 3880 PRINT"A NEGATIVE BET FORCES A SHUFFLE."
- 3890 PRINT"TO START, HIT RETURN KEY."
- 3900 WAIT 0,1,1
- 3910 RETURN
- 3920 GOTO 3930
- 3930 END
-